<?php
namespace app\api\controller;

use app\api\controller\BaseClientController;
use support\exception\BusinessException;
use support\Redis;
use support\Request;

class SmsController extends BaseClientController
{
    public $noNeedLogin = ["send"];
    public function send(Request $request)
    {
        $mobile = $request->post("mobile");

        // 判断是否存在
        $code = Redis::get("mobile_{$mobile}");
        if ($code) {
            throw new BusinessException("短信验证码已发送，请稍后再试");
        }

        // 生成6位验证码
        $code = rand(100000, 999999);

        // $url    = "http://v.juhe.cn/sms/send";
        // $params = [
        //     "mobile" => $mobile,
        //     "tpl_id" => "111111",
        //     "vars"   => json_encode([
        //         "code" => $code,
        //     ]),
        //     "key"    => "11111111111111111111111111111111",
        // ];

        // // 初始化 cURL 会话
        // $ch = curl_init();

        // // 设置 cURL 选项
        // curl_setopt($ch, CURLOPT_URL, $url);
        // curl_setopt($ch, CURLOPT_POST, true);
        // curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
        // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        // // 执行 cURL 请求
        // $response = curl_exec($ch);

        // $data = json_decode($response, true);

        // if ($data["error_code"] != 0) {
        //     throw new BusinessException("短信发送失败:" . $data["reason"]);
        // }

        // 短信验证码有效期为10分钟
        Redis::set("mobile_{$mobile}", $code, 600);

        // // 检查是否有错误发生
        // if (curl_errno($ch)) {
        //     $error = curl_error($ch);
        //     // 关闭 cURL 会话
        //     curl_close($ch);
        //     throw new BusinessException("短信发送失败" . $error);
        // }

        // // 关闭 cURL 会话
        // curl_close($ch);

        return $this->success();
    }

}
